$(function() {
	SecurityTable();
	
});

var SecurityTable = function() {
	layui
			.use(
					[ 'laydate', 'laypage', 'layer', 'table', 'element'],
					function() {
						var laydate = layui.laydate // 日期
						, laypage = layui.laypage // 分页
						, layer = layui.layer // 弹层
						, table = layui.table // 表格
						, element = layui.element // 元素操作
						var form = layui.form;
						var $ = layui.jquery;
						// 执行一个 table 实例
						var securityTable = table.render({
							elem : '#SecurityTable',
							url : 'securitys' // 数据接口
							,
							title : '证券表',
							page : true // 开启分页
							,
							limits : [ 5, 10, 15 ],
							toolbar : 'default' // 开启工具栏，此处显示默认图标，可以自定义模板，详见文档
							,
							cols : [ [ // 表头
							{
								type : 'checkbox',
								fixed : 'left'
							}, {
								field : 'securityId',
								title : 'ID',
								sort : true,
								fixed : 'left',
							}, {
								field : 'securityNo',
								title : '证券代码'
							}, {
								field : 'securityName',
								title : '证券名',
								sort : true,
								totalRow : true
							}, {
								field : 'exchange',
								title : '交易所',
								sort : true
							}, {
								field : 'issueDate',
								title : '发行日期',
								sort : true,
								templet: function(data){
									var  issueDate = new Date(data.issueDate);
							        return issueDate.getFullYear()+"-"+issueDate.getMonth()+"-"+issueDate.getDate();
							      }
							}, {
								field : 'var',
								title : '证券品种'
							}, {
								field : 'delayDate',
								title : '延迟日期'
							}, {
								field : 'stockPlateId',
								title : '股票板块Id'
							}, {
								field : 'stockPlateName',
								title : '股票板块名'
							}, {
								field : 'description',
								title : '描述'
							} ] ]
						});

						// 监听头工具栏事件
						table.on(
										'toolbar(SecurityTable)',
										function(obj) {
											var checkStatus = table
													.checkStatus(obj.config.id), data = checkStatus.data; // 获取选中的数据
											switch (obj.event) {
											case 'add':
												// 弹出新增模态框
												initAddSecurityModal();
												break;
											case 'update':
												if (data.length === 0) {
													layer.msg('请选择一行');
												} else if (data.length > 1) {
													layer.msg('只能同时编辑一个');
												} else {
													initUpdateSecurityModal(data);
												}
												break;
											case 'delete':
												if (data.length === 0) {
													layer.msg('请选择一行');
												} else {
													// 调用删除方法
													deleteSecurity(data);
												}
												break;
											};
										});

						// 监听行工具事件
						table.on('tool(SecurityTable)', function(obj) { // 注：tool
							// 是工具条事件名，test
							// 是
							// table
							// 原始容器的属性
							// lay-filter="对应的值"
							var data = obj.data // 获得当前行数据
							, layEvent = obj.event; // 获得 lay-event 对应的值
							if (layEvent === 'detail') {
								layer.msg('查看操作');
							} else if (layEvent === 'del') {
								layer.confirm('真的删除行么', function(index) {
									obj.del(); // 删除对应行（tr）的DOM结构
									layer.close(index);
									// 向服务端发送删除指令
								});
							} else if (layEvent === 'edit') {
								layer.msg('编辑操作');
							}
						});

						// 初始化新增模态框
						var initAddSecurityModal = function() {
							// 弹出一个页面层
							layer.open({
								type : 1 // 基本层类型0~4，1为页面层
								,
								title : '添加资源' // 标题
								,
								area : [ '400px', '550px' ] // 宽高
								// 只写一个参数就是表示宽度，高度会自适应
								,
								content : $("#addSecurityModal") // 文本、html都行
								,
								anim : 0 // 弹出动画
								,
								resize : false // 是否允许拉伸
								,
								end : function() { // 弹出层销毁时的回调函数（不论何种方式，只要关闭了就执行）
									// 清空表单
									$("#addSecurityForm")[0].reset();
								}
							});

						};

						// 初始化修改模态框
						var initUpdateSecurityModal = function(data) {
							data = data[0];
							// 弹出一个页面层
							layer.open({
								type : 1 // 基本层类型0~4，1为页面层
								,
								title : '修改资源' // 标题
								,
								area : [ '400px', '550px' ] // 宽高
								// 只写一个参数就是表示宽度，高度会自适应
								,
								content : $("#updateSecurityModal") // 文本、html都行
								,
								anim : 0 // 弹出动画
								,
								resize : false // 是否允许拉伸
								,
								end : function() { // 弹出层销毁时的回调函数（不论何种方式，只要关闭了就执行）
									// 清空表单
									$("#updateSecurityForm")[0].reset();
								}
							});
							// 表单赋值
							form.val('updateSecurityForm', {
								"securityId" : data.securityId,
								"securityName" : data.securityName,
								"exchange" : data.exchange,
								"var" : data.var,
								"delayDate" : data.delayDate,
								"stockPlateId" : data.stockPlateId,
								"stockPlateName" : data.stockPlateName,
								"description" : data.description
							});
						};
						//删除
						var deleteSecurity = function(data) {
							var securityIds = "";
							for (var i = 0; i < data.length; i++) {
								securityIds += data[i].securityId + ",";
							}
							$.ajax({
								type : "POST",
								url : 'security/' + securityIds,
								data : {
									_method : 'DELETE',
								},
								success : function(data) {
									if (data == true) {
										layer.confirm('删除成功');
									} else {
										layer.confirm('删除失败');
									}
									// 刷新数据表格
									table.reload('SecurityTable', {
										url : 'securitys'
									});
								}
							});
						};

						// 关闭模态框
						$(".modalClose").click(function() {
							// 关闭页面上所有类型的所有弹框
							layer.closeAll();
						});

						// 搜索框
						form.on('submit(securitySearchBtn)', function(data) {

							var data = data.field;
							// 执行后台代码
							securityTable.reload({
								where : { // 设定异步数据接口的额外参数，任意设
									"securityNo" : data.securityNo,
									"securityName" : data.securityName,
									"exchange" : data.exchange,
									"startIssueDate" : data.startIssueDate,
									"endIssueDate" : data.endIssueDate,
									"var" : data.var,
									"delayDate" : data.delayDate,
									"stockPlateName" : data.stockPlateName,
									"description" : data.description
								},
								page : {
									curr : 1
								// 重新从第 1 页开始
								}
							});

							// 刷新数据表格
							// table.reload('resourceTable', {url:
							// 'sys/resources'});
							return false; // 阻止表单跳转。如果需要表单跳转，去掉这段即可。
						});
						// 添加
						var addSecurity = function() {

							// 获取表单中填写的数据
							var addSecurityFormData = $("#addSecurityForm").serialize();
							$.ajax({
								type : "POST",
								url : 'security',
								data : addSecurityFormData,
								success : function(data) {
									if (data == true) {
										// 刷新数据表格
										layer.closeAll();
										layer.confirm('添加成功');
									} else {
										layer.confirm('添加失败');
									}
									// 刷新数据表格
									table.reload('SecurityTable', {
										url : 'securitys'
									});
								}
							});
							return false;
						};
						// 修改
						var updateSecurity = function() {
							// 获取表单中填写的数据
							var  updateSecurityFormData = $(
									"#updateSecurityForm").serialize();
							$.ajax({
								type : "POST",
								url : 'security',
								data : updateSecurityFormData,
								success : function(data) {
									if (data == true) {
										// 刷新数据表格
										layer.closeAll();
										layer.confirm('修改成功');
									} else {
										layer.confirm('修改失败');
									}
									// 刷新数据表格
									table.reload('SecurityTable', {
										url : 'securitys'
									});
								}
							});
							return false;
						};
						
						//常规用法
						laydate.render({
							elem: '#startIssueDate'
						});
						laydate.render({
							elem: '#endIssueDate'
						});
						
						// 为添加按钮绑定事件
						$("#addSecurity").click(addSecurity);
						$("#updateSecurityBtn").click(updateSecurity);
					});

}
